package com.hbnu.system.model.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("paper")
public class PaperDTO extends Model<PaperDTO> implements Serializable{

    private static final long serialVersionUID = 1L;

    /**
     * 主键 论文编号
     */
    @ApiModelProperty(value = "主键")
    @TableId(value = "PaperID", type = IdType.ASSIGN_ID)
    private String PaperID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;
    /**
     * 论文编号
     */
    @ApiModelProperty(value = "论文编号")
    @TableField("paperNum")
    private String paperNum;
    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @TableField("organization")
    private String organization;

    /**
     * 署名单位
     */
    @ApiModelProperty(value = "署名单位")
    @TableField("signedUnit")
    private String signedUnit;

    /**
     * 论文名称
     */
    @ApiModelProperty(value = "论文名称")
    @TableField("paperName")
    private String paperName;

    /**
     * 刊物名称
     */
    @ApiModelProperty(value = "刊物名称")
    @TableField("periodicalName")
    private String periodicalName;

    /**
     * 刊物分类
     */
    @ApiModelProperty(value = "刊物分类")
    @TableField("periodicalCate")
    private String periodicalCate;

    /**
     * 第一作者
     */
    @ApiModelProperty(value = "第一作者")
    @TableField("leadAuthor")
    private String leadAuthor;

    /**
     * 出版、发表、使用时间
     */
    @ApiModelProperty(value = "出版、发表、使用时间")
    @TableField("publicationTime") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate publicationTime;

    /**
     * 收录情况
     */
    @ApiModelProperty(value = "收录情况")
    @TableField("inclusionState")
    private String inclusionState;

    /**
     * 论文字数（千字
     */
    @ApiModelProperty(value = "论文字数")
    @TableField("wordsNum")
    private String wordsNum;

    /**
     * CN号
     */
    @ApiModelProperty(value = "CN号")
    @TableField("CNnum")
    private String CNnum;

    /**
     * ISSN或ISBN号
     */
    @ApiModelProperty(value = "ISSN或ISBN号")
    @TableField("StandardNumber")
    private String StandardNumber;

    /**
     * 影响因子
     */
    @ApiModelProperty(value = "影响因子")
    @TableField("factors")
    private String factors;

    /**
     * 论文分类
     */
    @ApiModelProperty(value = "论文分类")
    @TableField("paperCate")
    private String paperCate;

    /**
     * 年卷期页码
     */
    @ApiModelProperty(value = "年卷期页码")
    @TableField("annualVolumePage")
    private String annualVolumePage;

    /**
     * 论文来源
     */
    @ApiModelProperty(value = "论文来源")
    @TableField("paperOrigin")
    private String paperOrigin;

    /**
     * 研究类别
     */
    @ApiModelProperty(value = "研究类别")
    @TableField("researchCate")
    private String researchCate;

    /**
     * 一级学科
     */
    @ApiModelProperty(value = "一级学科")
    @TableField("firstDiscipline")
    private String firstDiscipline;

    /**
     * 二级学科
     */
    @ApiModelProperty(value = "二级学科")
    @TableField("secondaryDiscipline")
    private String secondaryDiscipline;

    /**
     * 是否受学校经费资助
     */
    @ApiModelProperty(value = "是否受学校经费资助")
    @TableField("schoolSup")
    private String schoolSup;


    /**
     * 成果引用采纳情况
     */
    @ApiModelProperty(value = "成果引用采纳情况")
    @TableField("introductionAdoption")
    private String introductionAdoption;

    /**
     * 成果摘要
     */
    @ApiModelProperty(value = "成果摘要")
    @TableField("resultsExcerpt")
    private String resultsExcerpt;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("notes")
    private String notes;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入人名称
     */
    @ApiModelProperty(value = "录入人名称")
    private String enteredName;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    @TableField("enteredDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enteredDate;

    /**
     * 所有作者
     */
    @ApiModelProperty(value = "所有作者")
    @TableField("allAuthor")
    private String allAuthor;

    /**
     * 所有作者名称
     */
    @ApiModelProperty(value = "所有作者")
    private String allAuthorName;

    /**
     * 关联项目
     */
    @ApiModelProperty(value = "关联项目")
    @TableField("associatedProjects")
    private String associatedProjects;

    /**
     * 审核结果
     */
    @ApiModelProperty(value = "审核结果")
    @TableField("status")
     private String status;

    /**
     * 未通过原因
     */
    @ApiModelProperty(value="未通过原因")
    @TableField(value = "reason")
    private String reason;

    /**
     * 审核学院
     */
    @ApiModelProperty(value="所属学院")
    @TableField(value = "dept")
    private String dept;

    /**
     * 审核学院名称
     */
    @ApiModelProperty(value="所属学院")
    private String deptName;

    /**
     * 通讯作者
     */
    @ApiModelProperty(value = "通讯作者")
    @TableField("correspondingAuthor")
    private String correspondingAuthor;


    @ApiModelProperty(value="量化分数")
    @TableField(value = "score")
    private float score;


    @ApiModelProperty(value="考核系数")
    @TableField(value = "assessment")
    private float assessment;
}
